package com.tmxk.days01.wmh.Test;

public class Vehicle_wmh {
    //定义三个静态特征
    /**
     * 颜色
     */
    String color;
    /**
     * 品牌
     */
    String brand;
    /**
     * 名称
     */
    String name;
    /**
     * 价格
     */
    double price;
    //无参构造和有参构造 是特殊的方法重载。方法重载与我们方法的返回值数据类型无关

    /**
     * 定义一个无参构造方法
     */
    public Vehicle_wmh() {
        color = "黑色";
        brand = "特斯拉";
        name = "特斯拉---";
        price = 400000;
    }

    /**
     * @param brand :形参，局部变量，品牌
     * @param color ：形参，局部变量，颜色
     * @param name  ：形参，局部变量，名字
     * @param price ：形参，局部变量，价格
     */
    public Vehicle_wmh(String color, String brand, String name, double price) {
        //为了区分形参传递的和当前本类的同名属性，使用this关键字进行区分。
        //this就是代表着当前对象引用
        this.color = color;
        this.brand = brand;
        this.name = name;
        this.price = price;
        setPrice(price);
    }
    //设置get/set方法 get：获取值   set：设置值
    /**
     * 方法：带小括号的叫方法。
     * 方法分类：无返回值数据类型，无参数
     * 无返回值数据类型，带参数
     * 有返回值数据类型，无参数
     * 有返回值数据类型，带参数
     * 无返回值数据类型关键字：void
     * 形参：形式上的参数，方法定义时，小括号中传递的，由数据类型和参数名组成;
     * 实参：实际传递的参数，调用方法时，小括号中传递的，只需传递参数名即可；
     * 无返回值数据类型，无参数 -->语法：访问修饰  void 方法名(){    //方法体}
     * 无返回值数据类型，带参数-->语法：访问修饰  void 方法名(形参列表){    //方法体}
     *有返回值数据类型，无参数-->语法：返回值数据类型 方法名(){  return 对应返回数据类型结果}
     */
    /**
     * 获取颜色的方法
     *
     * @return 返回颜色
     */
    public String getColor() {
        return this.color;
    }

    /**
     * 设置颜色的方法
     *
     * @return 返回颜色
     */
    public void setColor(String color) {
        this.color = color;
    }

    public double getPrice() {
        return this.price;
    }

    /**
     * 获取品牌的方法
     *
     * @return 返回品牌
     */
    public String getbrand() {
        return this.brand;
    }

    /**
     * 设置品牌的方法
     *
     * @return 返回品牌
     */
    public void setbrand(String brand) {
        this.brand = brand;
    }

    /**
     * 获取名称的方法
     *
     * @return 返回名称
     */
    public String getName() {
        return this.name;
    }

    /**
     * 设置名称的方法
     *
     * @return 返回名称
     */
    public void setname(String name) {
        this.name = name;
    }

    public void setPrice(double price) {
        if (price <= 0) {
            System.out.println("机动车不倒贴，官方价格2000000");
            this.price = 2000000;
        } else {
            this.price = price;
        }
    }

    /**
     * 定义一个显示机动车基本信息的方法
     */
    public void showInfo() {
        System.out.println("机动车的基本信息：" + color + "色，品牌是：" + brand + "价格是：" + price + "名称是：" + name);
    }
}
